/*
 * @File    :   index.js
 * @Time    :   2024/03/24 16:45:06
 * @Author  :   chakcy
 * @Email   :   947105045@qq.com
 * @description   :   网络请求模块
 */

// 引入axios模块
const axios = require('axios');
// 引入配置信息中的baseUrl和token
const { baseUrl, token } = require('../../config')

// 创建一个axios实例Request，并配置baseURL、headers和timeout
const Request = axios.create({
    baseURL: baseUrl,  // 设置基本请求路径
    headers: {
        'Content-Type': 'application/json'  // 设置请求头的Content-Type为application/json
    },
    timeout: 10000  // 设置请求超时时间为10秒
})

// 请求拦截器，处理token信息
Request.interceptors.request.use(
    config => {
        if (token['serverToken'] == null) {  // 若服务器令牌为空，则直接返回配置
            return config
        } else {  // 否则将服务器令牌添加到请求头中并返回配置
            Request.defaults.headers['server-jwt-token'] = token['serverToken']
            return config
        }
    },
    error => {
        return Promise.error(error);  // 请求拦截出错时，返回一个带有该错误的已拒绝的Promise
    }
)

module.exports = {
    Request
}
